#pragma once
#include <vector>
#include "EdgeList.h"

using namespace std;

class TriangleMesh
{
public:
	TriangleMesh(void);
	~TriangleMesh(void);

	void addVertex(float x, float y, float z);
	void addFace(int v1, int v2, int v3);
	int getNumVert();
	int getNumFace();
	float* getVertex(int id, float *v);
	float getVertCoord(int id, int coord);
	int* getFace(int id, int* face);
	std::vector<int> getFaces();
	std::vector<float> getVertices();
	void setFaces(const std::vector<int>& faces);
	void buildEdgeList();
	void clear();

	int sizeGeom();
	int sizeTri();

	std::vector<float> vertices_;
	std::vector<int> faces_;
	int numVert_;
	int numFace_;
	EdgeList edges_;
};
